1. Field of the Invention
The present invention relates generally to encoding and decoding data. More particularly, the present invention relates to run length limited (RLL) coding for recording data. The present invention further relates to encoding methods that achieve, for example, a 64/65 modulation code and a 64/66 modulation code.
2. Background and Related Art
Digital data is often converted from one format to another as it flows between computing devices, such as between a computer and a storage device. Such storage devices typically record data to a magnetic or optical medium. Data communicated to a storage device is often encoded into a RLL modulation code. Generally, RLL code limits continuos-repetition of a specific bit pattern, such as successive zeros (0s) and/or ones (1s).
RLL coding is often used when storing data since it provides particularly dense packing of data on a storage medium. Further reference may be had to U.S. Pat. Nos. 4,413,251, 4,684,921, 4,688,016, 4,949,196, 5,177,482, 5,198,813, 5,491,479, 5,708,536, 5,742,243, and 5,933,103, each herein incorporated by reference, for the general state of the RLL encoding art.
In recent years, there has been a push in the magnetic storage industry for higher rate RLL codes (e.g., 32/33 and 64/65 vs. rates of 8/9 and 16/17 as used in previous years). High rate RLL codes improve system performance by decreasing the overall channel bit density. However, there are tradeoffs for this advantage. For example, high rate RLL codes typically have higher error propagation, and are more complex from an implementation point of view.
Accordingly, there remains a need for an apparatus and method that provide efficient modulated codes for higher rate RLL codes.
The present invention provides a method and apparatus for encoding/decoding data.
A method of encoding data is provided according to a first aspect of the present invention. The method includes the steps of: i) dividing the data into a plurality of blocks, with each block having a plurality of bits, wherein the plurality of blocks includes a first subset of blocks and a second subset of blocks; ii) encoding data in the first subset; iii) arranging a codeword to include the encoded data of the first subset and the second subset; iv) scanning a plurality of segments in the codeword for at least one predetermined sequence; and v) encoding a scanned segment when the predetermined sequence is found in the segment.
According to another aspect of the present invention, a method of decoding data is provided. The data includes a codeword having a plurality of blocks. The plurality of blocks includes a first subset of blocks and a second subset of blocks. The method includes the steps of: i) scanning a plurality of segments in the codeword for a predetermined sequence; ii) decoding a scanned segment when the predetermined sequence is found in the segment; iii) decoding data in the first subset; and iv) arranging an output to include the decoded data from the first subset and the second subset.
According to still another aspect of the present invention, computer executable code to encode and decode data is provided. The code includes code to: i) divide the data into a plurality of blocks, with each block having a plurality of bits, wherein the plurality of blocks includes a first subset of blocks and a second subset of blocks; ii) encode data in the first subset; iii) arrange a codeword to include the encoded data of the first subset and the second subset; iv) scan a plurality of segments in the codeword for at least one predetermined sequence; v) encode a scanned segment when the predetermined sequence is found in the segment; vi) transmit the codeword to a memory; vii) retrieve the codeword from the memory; viii) scan a plurality of segments in the codeword for a second predetermined sequence; ix) decode a scanned segment when the second predetermined sequence is found in that segment; x) decode data of the first subset; and xi) arrange an output comprising the decoded data of the first subset and the second subset.
These and other objects, features and advantages will be apparent from the following description of the preferred embodiments of the present invention.